Integrated circuit devices, such as field-programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), and the like, may be used to implement a variety of functions. For instance, an FPGA device may be configured to perform various user functions based on different user designs. Integrated circuit devices may be employed in various different systems (e.g., communication systems).
An integrated circuit device may include multiple input-output elements that support a wide variety of protocols. As an example, an integrated circuit device may include high-speed transceiver (transmitter and receiver) channels that may be used to communicate with other components or circuits connected to the device. Transceiver channels on an integrated circuit device typically support multiple different input-output protocols.
Many multi-lane high-speed serial interface protocols (e.g., Interlaken, PCI Express, XAUI) may impose a requirement on the amount of data skew that can exist between any two transmit channels in a particular interface. To ensure proper synchronization between the different channels, circuitry may be used to minimize skew. Such circuitry may be used to “bond” transceiver channels (e.g., to reduce skew between each pair of transceiver channels).
Generally, conventional techniques for transceiver channel bonding impose several limitations and tradeoffs (e.g., limits on supported data rates, the number of channels that can be bonded, the placement of channels, etc.). To overcome some of these limitations and tradeoffs, integrated circuit devices typically include circuitry to support multiple different bonding methods. The need to include such types of bonding circuitry, however, results in additional silicon area overhead and may increase design complexity (i.e., longer verification time is needed).